package com.wenson.structural.composite;

/**
 * @ClassName: Node
 * @Author: luowangcheng
 * @Date: 2024/6/13 22:44
 * @Description:
 */
public abstract class Node {
    // 节点命名
    protected String name;

    // 构造方法需传入节点名
    public Node(String name) {
        this.name = name;
    }

    // 添加下级子节点方法
    protected abstract void add(Node child);

    protected void tree(int space){
        for (int i = 0; i < space; i++) {
            System.out.print(" "); // 先循环输出space个空格
        }
        System.out.println(name);// 接着再输出自己的名字
    }

    // 无参重载方法，默认从第0列开始展示
    protected void tree(){
        this.tree(0);
    }
}
